package cliente.pagina.contenido.foro;

import cliente.pagina.contenido.*;
import cliente.pagina.*;
import comun.constantes.*;
import helpers.foro.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class ContenidoOpinionForoConfirmaOperacion extends ContenidoConfirmaOperacion {

  private String contenidoMensaje;
  private Long idMensajeForo;
  private String tituloMensaje;
  private Long idForo;
  public ContenidoOpinionForoConfirmaOperacion() {
    super();
  }

  public ContenidoOpinionForoConfirmaOperacion(Pagina pagina) {
    this.setPagina(pagina);
  }


  // lo redefino porque necesito sacar los parametros del request que esta en la nueva pagina
   public void setPagina(Pagina pagina)
   {
     super.setPagina(pagina);

     if (pagina.getParameter(PARAMETROS_PAGINAS.ACCION)!=null)
     {
       this.setAccion(pagina.getParameter(PARAMETROS_PAGINAS.ACCION));
       // si la accion es eliminar debo recuperar los id de los textos para ver si los debo elimnar o no
       // que vienen en un vector en el objeto session
       //System.out.println("Accion ContenidoForoConfirmaOperacion: "+this.getAccion());
       if (this.getAccion().compareTo(ACCIONES_A_REALIZAR.ELIMINAR)==0)
       {
       }

       // esto es por si el navegador no tiene activado java script
     }

     //System.out.println("ACCION A REALIZAR: "+this.getAccion());

     //System.out.println("pagina.getParameter(PARAMETROS_PAGINAS.ASunto_foro):"+pagina.getParameter(PARAMETROS_PAGINAS.ASUNTO_FORO));
     if (pagina.getParameter(PARAMETROS_PAGINAS.CONTENIDO_MENSAJE)!=null)
       this.contenidoMensaje = pagina.getParameter(PARAMETROS_PAGINAS.CONTENIDO_MENSAJE);

     //System.out.println("pagina.getParameter(PARAMETROS_PAGINAS.ID_FORO):"+pagina.getParameter(PARAMETROS_PAGINAS.ID_FORO));
     if (pagina.getParameter(PARAMETROS_PAGINAS.ID_FORO)!=null)
       this.idForo = new Long (pagina.getParameter(PARAMETROS_PAGINAS.ID_FORO));

     if (pagina.getParameter(PARAMETROS_PAGINAS.ID_MENSAJE_FORO)!=null)
       this.idMensajeForo = new Long (pagina.getParameter(PARAMETROS_PAGINAS.ID_MENSAJE_FORO));

     //System.out.println("pagina.getParameter(PARAMETROS_PAGINAS.ESTADO_FORO):"+pagina.getParameter(PARAMETROS_PAGINAS.ESTADO_FORO));
     if (pagina.getParameter(PARAMETROS_PAGINAS.TITULO_MENSAJE)!=null)
       this.tituloMensaje = pagina.getParameter(PARAMETROS_PAGINAS.TITULO_MENSAJE);

   }



// redefinido para agregarle el comportamiento de la actualizacion de datos
   public String getHTMLVista() {
     HelperForo helperForo=null;

     try {
       String html = super.getHTMLVista();

       // hacer de acuerdo a la operacion la actualizacion correspondiente
       helperForo = new HelperForo(this.getPagina());
       String resultadoOperacion="";
       if (this.getAccion().compareTo(ACCIONES_A_REALIZAR.ELIMINAR)==0)
       {
         //System.out.println("ID mensaje FORO A ELIMINAR: "+this.idMensajeForo);
         resultadoOperacion = helperForo.eliminarMensajeForo(this.idMensajeForo);
       }
       else
         if (this.getAccion().compareTo(ACCIONES_A_REALIZAR.AGREGAR)==0)
         {
           // si el id del foro es nulo no lo pudo agregar
           this.idMensajeForo = helperForo.agregarMensajeForo(idForo,this.contenidoMensaje,this.tituloMensaje,this.getPathCarpetaArchivosRecurso(true));

           if (this.idMensajeForo!=null)
             resultadoOperacion = TEXTOS.ACTUALIZACION_DE_DATOS_EXITOSA;
           else
             resultadoOperacion = comun.MensajeDeError.ERROR_EN_LA_ACTUALIZACION_DE_DATOS;
         }


         // hacer el forward a la pagina desde donde se invoco esta pagina
         ContenidoOpinionForo contenidoOpinionForo= new ContenidoOpinionForo(this.getPagina());
         String paginaForward = contenidoOpinionForo.getPathNombrePagina()
                     // paso como parametro el resultado de la operacion
                     +"&"+PARAMETROS_PAGINAS.RESULTADO_OPERACION+"="+resultadoOperacion;
         paginaForward +="&"+PARAMETROS_PAGINAS.ID_FORO+"="+this.idForo;
         paginaForward +="&"+PARAMETROS_PAGINAS.ASUNTO_FORO+"="+helperForo.getAsuntoForo(this.idForo);
         //System.out.println("PARAMETROS_PAGINAS.ASUNTO_FORO: "+helperForo.getAsuntoForo(this.idForo));
         // si el mensaje del foro es distinto de null lo paso como parametro
         if (this.idMensajeForo!=null)
           paginaForward +="&"+PARAMETROS_PAGINAS.ID_MENSAJE_FORO+"="+this.idMensajeForo;

         html += utils.UtilsGenerarHtml.generarHTMLForward(paginaForward);
         html += " <center> <a href=\""+paginaForward+"\"> haga click en este link para regresar </a></center>  <br />\n";

         // cierro el helper
         helperForo.commit();
         return html;
    }
    catch (Exception ex) {
      ex.printStackTrace();
      helperForo.rollback();
      return  comun.MensajeDeError.ERROR_EN_LA_GENERACION_DE_LA_PAGINA;
    }
   }


  public String getSubcarpetaRecurso()
  {
    return CARPETAS_ARCHIVOS_RECURSO.FORO+"/"+PARAMETROS_PAGINAS.ID_FORO+this.idForo;
  }


   protected String getNombrePagina() {
     return "foro_opinion_confirma_operacion.jsp";
   }

   public String getTitulo()
   {
     return this.getAccion()+" Mensaje del Foro";
   }

   public String getNombreRecurso()
   {
     return RECURSOS.FORO_OPINION;
   }

   public String getTituloLink() {
     /**@todo Implement this cliente.pagina.contenido.VistaContenido abstract method*/
     throw new java.lang.UnsupportedOperationException("Method getTituloLink() not yet implemented.");
   }

  public void setContenidoMensaje(String contenidoMensaje) {
    this.contenidoMensaje = contenidoMensaje;
  }
  public String getContenidoMensaje() {
    return contenidoMensaje;
  }
  public void setIdMensajeForo(Long idMensajeForo) {
    this.idMensajeForo = idMensajeForo;
  }
  public Long getIdMensajeForo() {
    return idMensajeForo;
  }
  public void setTituloMensaje(String tituloMensaje) {
    this.tituloMensaje = tituloMensaje;
  }
  public String getTituloMensaje() {
    return tituloMensaje;
  }
  public void setIdForo(Long idForo) {
    this.idForo = idForo;
  }
  public Long getIdForo() {
    return idForo;
  }



}